package com.ssy.lingxi.feign;

import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.dto.request.ApplyAmountDetailSunQueryVO;
import com.ssy.lingxi.dto.request.ApplyAmountDetailTotalSunQueryVO;
import com.ssy.lingxi.dto.request.ApplyAmountSunQueryVO;
import com.ssy.lingxi.dto.response.ApplyAmountDetailSunVO;
import com.ssy.lingxi.dto.response.ApplyAmountDetailTotalSunVO;
import com.ssy.lingxi.dto.response.ApplyAmountSunVO;
import com.ssy.lingxi.fallback.ApplyAmountControllerFeignFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.util.List;

@FeignClient(value = "settle-accounts-service", fallback = ApplyAmountControllerFeignFallback.class)
public interface ApplyAmountControllerFeign {

    /**
     * 合同服务-查询请款执行请款
     * @param queryVO 查询条件
     * @return 请款执行请款
     */
    @RequestMapping(value = "/settle/accounts/business/apply/amount/feign/pageContractExecuteDetail", method = RequestMethod.POST)
    Wrapper<PageData<ApplyAmountDetailSunVO>> pageContractExecuteDetail(@RequestBody ApplyAmountDetailSunQueryVO queryVO);

    /**
     * 合同服务-查询请款执行请款汇总
     * @param queryVO 查询条件
     * @return 请款执行请款汇总
     */
    @RequestMapping(value = "/settle/accounts/business/apply/amount/feign/pageContractExecuteDetailSum", method = RequestMethod.POST)
    Wrapper<List<ApplyAmountDetailTotalSunVO>> pageContractExecuteDetailSum(@RequestBody ApplyAmountDetailTotalSunQueryVO queryVO);


    /**
     * 合同服务-查询 合同请款情况统计
     * @param queryVO 查询条件
     * @return 合同请款情况统计
     */
    @RequestMapping(value = "/settle/accounts/business/apply/amount/feign/pageListForSummaryByParty", method = RequestMethod.POST)
    Wrapper<PageData<ApplyAmountSunVO>> pageListForSummaryByParty(@RequestBody ApplyAmountSunQueryVO queryVO);

    /**
     * 合同服务-查询 合同请款付款情况统计
     * @param queryVO 查询条件
     * @return 合同请款付款情况统计
     */
    @RequestMapping(value = "/settle/accounts/business/apply/amount/feign/listForPaySummaryByParty", method = RequestMethod.POST)
    Wrapper<List<ApplyAmountSunVO>> listForPaySummaryByParty(@RequestBody ApplyAmountSunQueryVO queryVO);
}
